package proyecto.web;

import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import proyecto.excepcion.DAOExcepcion;
import proyecto.modelo.Medico;
import proyecto.service.MedicoService;

public class MedicoController extends MultiActionController {

    private MedicoService medicoService;

    public MedicoService getMedicoService() {
        return medicoService;
    }

    public void setMedicoService(MedicoService medicoService) {
        this.medicoService = medicoService;
    }

    public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {
        return new ModelAndView("/admin/categorias_mantener");
        //        cambiar a la pagina real
    }

    public ModelAndView buscar(HttpServletRequest request, HttpServletResponse response) {
        String dni = request.getParameter("dni");
        try {
            Collection<Medico> Medico = medicoService.buscarPorDni(dni);
            System.out.println(Medico);
            request.setAttribute("Medico", Medico);
        } catch (DAOExcepcion ex) {
            System.err.println(ex.toString());
        }
        return new ModelAndView("/admin/categorias_mantener");
//        cambiar a la pagina real
    }

    public ModelAndView nuevo(HttpServletRequest request, HttpServletResponse response) {
        return new ModelAndView("/admin/categorias_nuevo");
        //        cambiar a la pagina real
    }

    public ModelAndView insertar(HttpServletRequest request, HttpServletResponse response) {
        Medico vo = new Medico();
        int id = Integer.parseInt(request.getParameter("especialidad"));
        vo.setEspecialidadcodigoEspecialidad(id);
        vo.setDni(request.getParameter("dni"));
        vo.setNombres(request.getParameter("nombres"));
        vo.setApellidos(request.getParameter("apellidos"));
        int cole = Integer.parseInt(request.getParameter("colegiatura"));
        vo.setNumColegiatura(cole);
        vo.setSexo(request.getParameter("sexo")); 
        vo.setFechaNac(request.getParameter("nacimiento"));
        vo.setDireccion(request.getParameter("direccion"));
        vo.setTelefono(request.getParameter("telefono"));
        vo.setMail(request.getParameter("mail"));
<<<<<<< .mine
=======
        //vo.setContrasena(request.getParameter("clave"));
>>>>>>> .r23
        try {
            medicoService.insertar(vo);
        } catch (DAOExcepcion e) {
            System.err.println(e.toString());
        }
        return new ModelAndView("admin/confirmar-datos-medico");// cambiar a la pagina real
    }

//    public ModelAndView eliminar(HttpServletRequest request, HttpServletResponse response) {
//        String idCategoria = request.getParameter("idCategoria");
//        try {
//            categoriaService.eliminar(Integer.parseInt(idCategoria));
//        } catch (DAOExcepcion ex) {
//            System.err.println(ex.toString());
//        }
//        return new ModelAndView("redirect:/categorias_mantener.htm");
//    }
    public ModelAndView obtener(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("codigoMedico"));
        Medico vo;
        try {
            vo = medicoService.obtener(id);
            request.setAttribute("Medico", vo);
        } catch (DAOExcepcion e) {
            System.err.println("Error");
        }
        return new ModelAndView("/admin/categorias_editar"); // cambiar a la pagina real
    }

    public ModelAndView actualizar(HttpServletRequest request, HttpServletResponse response) {
        Medico vo = new Medico();
<<<<<<< .mine
=======
        //vo.setCodigoMedico(id);
>>>>>>> .r23
        vo.setDni(request.getParameter("dni"));
        vo.setNombres(request.getParameter("nombres"));
        vo.setApellidos(request.getParameter("apellidos"));
        vo.setSexo(request.getParameter("sexo")); //modificar para leer del combo list
        vo.setFechaNac(request.getParameter("nacimiento"));
        vo.setDireccion(request.getParameter("direccion"));
        vo.setTelefono(request.getParameter("telefono"));
        vo.setMail(request.getParameter("mail"));
<<<<<<< .mine
=======
        //vo.setContrasena(request.getParameter("clave"));
>>>>>>> .r23

        try {
            medicoService.actualizar(vo);
        } catch (DAOExcepcion e) {
            System.err.println("Error");
        }
        return new ModelAndView("redirect:/categorias_mantener.htm");// cambiar a la pagina real
    }
}
